package com.meatball.authorization.data.dto

import com.meatball.core.validation.PasswordValidity
import io.swagger.v3.oas.annotations.media.Schema
import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size

/**
 * TODO 新增用户参数类
 *
 * @author 张翔宇
 * @since 2024年3月28日
 */
@Schema(description = "新增用户参数")
data class UpdateUserParams(
    @Schema(description = "用户ID", required = true, example = "1773177147784040448")
    @NotNull(message = "用户ID不能为空")
    val id: Long,

    @Schema(description = "用户名", required = true, example = "zhangsan")
    @NotBlank(message = "用户名不能为空")
    @Size(max = 50, message = "用户名不能超过50字符")
    val username: String,

    @Schema(description = "昵称", example = "三儿")
    @Size(max = 50, message = "昵称不能超过50字符")
    val nickname: String? = null,

    @Schema(description = "真实姓名", example = "张三")
    @Size(min = 2, max = 10, message = "真实姓名字符长度在2-10之间")
    val realName: String? = null,

    @Schema(description = "头像", example = "https://meatball.org.cn:8000/images/2024/03/07/v2-3441507db209572e47109f8ca3f534de_r.jpg")
    @Size(max = 255, message = "头像地址长度不能超过255个字符")
    val avatar: String?
)